The invention relates to methods and apparatus suitable for executing a service or application at a client peer or client side, having a client specific device or client specific platform, said service or application being provided from a service peer or a service side.
When considering a plurality of client peers, a large diversity of devices will be encountered, requiring transmittal of client specific descriptions from and at the disposal at said service peer, resulting in a large design effort for designing all said client specific descriptions and storage thereof.
With a service or an application is meant a program, executable on a device and possibly some associated content files. When aiming at a high performance execution or performing of said service, dedicated design of said application such that it utilizes the features of the device, on which it will be executed, is needed. With use of device feature is meant here in particular the possibility of mapping some functions on hardware. Indeed when considering applications with computational intensive functions and computational less intensive functions, it is beneficial for performance to map the computational intensive ones on hardware, if available on the device.
The availability of hardware on which computational intensive functions can be mapped depends on the devices. In particular the existence of hardware reconfigurable devices, such as FPGA's, result in more variability here. Hence the requirement of dedicated design in a client-service environment with a large diversity of devices, in particular hardware reconfigurable ones, results in the need for even more client specific descriptions, especially in a quality of service oriented context. On the other hand said hardware reconfigurability of devices also introduces extra degree's of freedom in designing.
Networked reconfiguration, enabling platform independent application design, is known for software only, with Java Technology as a good representative example. Programming languages such as Java have also been used to describe hardware and even special object classes are defined to provide application programming interfaces to access FPGA bitstreams but these concepts have not been used in platform-independent context.